Implicit weighting of reference pictures in a video encoder

ABSTRACT

A video decoder, encoder, and corresponding methods for processing video signal data for an image block with two reference picture indices to predict the image block are disclosed that utilize implicit weighting of reference pictures to enhance video compression, where a decoder includes an implicit reference picture weighting factor unit for determining a weighting factor corresponding to each reference picture index; an encoder includes an implicit reference picture weighting factor assignor for assigning a weighting factor corresponding to each reference picture index; and a method for decoding includes receiving the reference picture indices with the data that corresponds to the image block, determining an implicit weighting factor responsive to the relative positioning of the image block and the reference pictures indicated by each reference picture index, retrieving a reference picture for each index, motion compensating the retrieved reference pictures, and multiplying the motion compensated reference pictures by the corresponding weighting factor to form weighted motion compensated reference pictures.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit, under 35 U.S.C. §365 ofInternational Application PCT/US03/28274, filed Sep. 10, 2003, which waspublished in accordance with PCT Article 21(2) on Apr. 15, 2004 inEnglish and which claims the benefit of U.S. provisional patentapplication No. 60/415,443, filed Oct. 1, 2002.

FIELD OF THE INVENTION

The present invention relates to the field of video CODECs.

BACKGROUND OF THE INVENTION

Video data is generally processed and transferred in the form of bitstreams. Typical video compression encoders and decoders (“CODECs”) gainmuch of their compression efficiency by forming a reference pictureprediction of a picture to be encoded, and encoding the differencebetween the current picture and the prediction. The more closely thatthe prediction is correlated with the current picture, the fewer bitsthat are needed to compress that picture, thereby increasing theefficiency of the process. Thus, it is desirable for the best possiblereference picture prediction to be formed.

In some video sequences, particularly those with fades, the currentpicture to be coded or decoded is more strongly correlated with thereference picture scaled by a weighting factor than with the referencepicture itself. Video codecs without weighting factors applied toreference pictures encode such fading sequences very inefficiently.Unfortunately, the transmission of weighting factors requires that someadditional bits be sent in the bitstream.

In many video compression standards, including Moving Picture ExpertsGroup (“MPEG”)-1, MPEG-2 and MPEG-4, a motion compensated version of aprevious reference picture is used as a prediction for the currentpicture, and only the difference between the current picture and theprediction is coded. When a single picture prediction (“P” picture) isused, the reference picture is not scaled when the motion compensatedprediction is formed.

When bidirectional picture predictions (“B” pictures) are used,intermediate predictions are formed from two different pictures, andthen the two intermediate predictions are averaged together, using equalweighting factors of (½, ½) for each, to form a single averagedprediction. In these MPEG standards, the two reference pictures arealways one each from the forward direction and the backward directionfor B pictures.

SUMMARY OF THE INVENTION

These and other drawbacks and disadvantages of the prior art areaddressed by a video encoder for encoding video signal data for an imageblock and a plurality of reference picture indices. The encodercomprises a reference picture weighting factor assignor function,responsive to the relative positioning between the image block and firstand second reference pictures indicated by the plurality of referencepicture indices. The reference picture weighting factor assignor is usedfor calculating an implicit weighting factor for the reference picturecorresponding to the particular reference picture index.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention utilizes implicit weighting of reference picturesin video coders and decoders in accordance with the following exemplaryfigures, in which:

FIG. 1 shows a block diagram for a video decoder, in accordance with theprinciples of the present invention;

FIG. 2 shows a block diagram for a video decoder with implicit referencepicture weighting, in accordance with the principles of the presentinvention;

FIG. 3 shows a flowchart for a decoding process, in accordance with theprinciples of the present invention;

FIG. 4 shows a block diagram for a video encoder, in accordance with theprinciples of the present invention;

FIG. 5 shows a block diagram for a video encoder with implicit referencepicture weighting, in accordance with the principles of the presentinvention; and

FIG. 6 shows a flowchart for an encoding process, in accordance with theprinciples of the present invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The present invention encompasses an apparatus and method for implicitweighting of reference pictures in video CODECs. In video sequences withfading, for example, the current picture or image block to be coded ismore strongly correlated to a reference picture scaled by a weightingfactor than to the reference picture itself. Video CODECs withoutweighting factors applied to reference pictures encode fading sequencesvery inefficiently. When weighting factors are used in encoding, a videoencoder needs to determine both weighting factors and motion vectors.

In the Joint Video Team (“JVT”) video compression standard, each Ppicture can use multiple reference pictures to form a picture'sprediction, but each individual motion block or 8×8 region of amacroblock uses only a single reference picture for prediction. Inaddition to coding and transmitting the motion vectors, a referencepicture index is transmitted for each motion block or 8×8 region,indicating which reference picture is used. A limited set of possiblereference pictures is stored at both the encoder and decoder, and thenumber of allowable reference pictures is transmitted.

For bi-predictive pictures (also called “B” pictures), two predictorsare formed for each motion block or 8×8 region, each of which can befrom a separate reference picture, and the two predictors are averagedtogether to form a single averaged predictor. For bi-predictively codedmotion blocks, the reference pictures can both be from the forwarddirection, both be from the backward direction, or one each from theforward and backward directions. Two lists are maintained of theavailable reference pictures that may used for prediction. The tworeference pictures may be referred to as the list 0 and list 1predictors, or the ref0 and ref1 reference pictures. An index for eachreference picture is coded and transmitted, ref_idx_I0 and ref_idx_I1,for the list and list 1 reference pictures, respectively. Joint VideoTeam (“JVT”) bi-predictive or “B” pictures have been proposed to allowadaptive weighting between the two predictions, i.e.:Pred=P1*Pred1+P0*Pred0+D  (Eqn. 1)where P1 and P0 are weighting factors, Pred0 and Pred1 are the referencepicture predictions for list 0 and list 1 respectively, and D is anoffset.

At least two methods for the determination and use of weighting factorshave been proposed, an implicit method and an explicit method. Using theimplicit method, the weighting factors are determined by the directionsthat are used for the reference pictures. In this method, if ref_fwdindex is less than or equal to ref_bwd index, weighting factors of (½,½) are used, otherwise weighting factors of (2, −1) are used. In theimplicit mode, weighting factors of (2, −1) are always used formacroblocks coded in direct mode.

Using the explicit method, any number of weighting factors aretransmitted for each slice. A weighting factor index is then transmittedfor each motion block or 8×8 region of a macroblock that usesBidirection prediction. The decoder uses the received weighting factorindex to choose the appropriate weighting factor, from the transmittedset, to use when decoding the motion block or 8×8 region.

It has also been proposed to explicity transmit a weighting factorassociated with each reference picture index once per slice or picture.A small but non-negligible number of bits is required to be transmittedfor each slice or picture in this case.

The following description merely illustrates the principles of theinvention. It will thus be appreciated that those skilled in the artwill be able to devise various arrangements that, although notexplicitly described or shown herein, embody the principles of theinvention and are included within its spirit and scope. Furthermore, allexamples and conditional language recited herein are principallyintended expressly to be only for pedagogical purposes to aid the readerin understanding the principles of the invention and the conceptscontributed by the inventor to furthering the art, and are to beconstrued as being without limitation to such specifically recitedexamples and conditions.

Moreover, all statements herein reciting principles, aspects, andembodiments of the invention, as well as specific examples thereof, areintended to encompass both structural and functional equivalentsthereof. Additionally, it is intended that such equivalents include bothcurrently known equivalents as well as equivalents developed in thefuture, i.e., any elements developed that perform the same function,regardless of structure.

Thus, for example, it will be appreciated by those skilled in the artthat the block diagrams herein represent conceptual views ofillustrative circuitry embodying the principles of the invention.Similarly, it will be appreciated that any flow charts, flow diagrams,state transition diagrams, pseudocode, and the like represent variousprocesses which may be substantially represented in computer readablemedia and so executed by a computer or processor, whether or not suchcomputer or processor is explicitly shown.

The functions of the various elements shown in the figures may beprovided through the use of dedicated hardware as well as hardwarecapable of executing software in association with appropriate software.When provided by a processor, the functions may be provided by a singlededicated processor, by a single shared processor, or by a plurality ofindividual processors, some of which may be shared.

Moreover, explicit use of the term “processor” or “controller” shouldnot be construed to refer exclusively to hardware capable of executingsoftware, and may implicitly include, without limitation, digital signalprocessor (“DSP”) hardware, read-only memory (“ROM”) for storingsoftware, random access memory (“RAM”), and non-volatile storage. Otherhardware, conventional and/or custom, may also be included. Similarly,any switches shown in the figures are conceptual only. Their functionmay be carried out through the operation of program logic, throughdedicated logic, through the interaction of program control anddedicated logic, or even manually, the particular technique beingselectable by the implementer as more specifically understood from thecontext.

In the claims hereof any element expressed as a means for performing aspecified function is intended to encompass any way of performing thatfunction including, for example, a) a combination of circuit elementsthat performs that function or b) software in any form, including,therefore, firmware, microcode or the like, combined with appropriatecircuitry for executing that software to perform the function. Theinvention as defined by such claims resides in the fact that thefunctionalities provided by the various recited means are combined andbrought together in the manner which the claims call for. Applicant thusregards any means that can provide those functionalities as equivalentto those shown herein.

In embodiments of the present invention, an implicit weighting factor isapplied to the reference picture prediction of a video compressionencoder and decoder that uses multiple reference pictures. When a blockis bipredictively coded and a new implicit mode is used as describedherein, the distances of the current picture from the reference picturesare used to determine the relative weighting factors based on aninterpolation/extrapolation formula.

As shown in FIG. 1, a video decoder is indicated generally by thereference numeral 100. The video decoder 100 includes a variable lengthdecoder (“VLD”) 110 connected in signal communication with an inversequantizer 120. The inverse quantizer 120 is connected in signalcommunication with an inverse transformer 130. The inverse transformer130 is connected in signal communication with a first input terminal ofan adder or summing junction 140, where the output of the summingjunction 140 provides the output of the video decoder 100. The output ofthe summing junction 140 is connected in signal communication with areference picture store 150. The reference picture store 150 isconnected in signal communication with a motion compensator 160, whichis connected in signal communication with a second input terminal of thesumming junction 140.

Turning to FIG. 2, a video decoder with implicit reference pictureweighting is indicated generally by the reference numeral 200. The videodecoder 200 includes a VLD 210 connected in signal communication with aninverse quantizer 220. The inverse quantizer 220 is connected in signalcommunication with an inverse transformer 230. The inverse transformer230 is connected in signal communication with a first input terminal ofa summing junction 240, where the output of the summing junction 240provides the output of the video decoder 200. The output of the summingjunction 240 is connected in signal communication with a referencepicture store 250. The reference picture store 250 is connected insignal communication with a motion compensator 260, which is connectedin signal communication with a first input of a multiplier 270.

The VLD 210 is further connected in signal communication with areference picture weighting factor lookup 280 for providing an implicitbi-prediction coefficient index to the lookup 280. The output of thelookup 280 is for providing a weighting factor, and is connected insignal communication to a second input of the multiplier 270. The outputof the multiplier 270 is connected in signal communication with a secondinput terminal of the summing junction 240.

Turning now to FIG. 3, an exemplary process for decoding video signaldata for an image block with implicit reference picture weighting isindicated generally by the reference numeral 300. The process includes astart block 310 that passes control to an input block 312. The inputblock 312 receives the image block compressed data, and passes controlto an input block 313. The input block 313 receives a first referencepicture index corresponding to a first particular reference picture, andpasses control to an input block 314. The input block 314 receives asecond reference picture index corresponding to a second particularreference picture. The input block 314 passes control to a functionblock 315, which determines the relative positioning between the imageblock and first and second reference pictures. The function block 315passes control to a function block 316, which calculates an implicitweighting factor corresponding to each of the received reference pictureindices based upon relative positioning of the current image block tothe first and second reference pictures, and passes control to afunction block 317.

The function block 317 begins a program loop to be executed for each ofthe two reference picture indices of the current image block, and passescontrol to a function block 318. The function block 318 retrieves areference picture corresponding to the current loop reference pictureindex, and passes control to a function block 320. The function block320, in turn, motion compensates the retrieved reference picture, andpasses control to a function block 322. The function block 322multiplies the motion compensated reference picture by the correspondingimplicit weighting factor, and passes control to a function block 323.The function block 323 iterates the loop of function block 317, andpasses control to function block 324 after the loop has completed twice.The function block 324, in turn, forms a combined weighted motioncompensated reference picture, and passes control to an end block 326.Thus, the relative positioning determined in function block 315 is usedfor the determination of the weighting factors.

As shown in FIG. 4, a standard video encoder is indicated generally bythe reference numeral 400. An input to the encoder 400 is connected insignal communication with a non-inverting input of a summing junction410. The output of the summing junction 410 is connected in signalcommunication with a block transformer 420. The transformer 420 isconnected in signal communication with a quantizer 430. The output ofthe quantizer 430 is connected in signal communication with a variablelength coder (“VLC”) 440, where the output of the VLC 440 is anexternally available output of the encoder 400.

The output of the quantizer 430 is further connected in signalcommunication with an inverse quantizer 450. The inverse quantizer 450is connected in signal communication with an inverse block transformer460, which, in turn, is connected in signal communication with areference picture store 470. A first output of the reference picturestore 470 is connected in signal communication with a first input of amotion estimator 480. The input to the encoder 400 is further connectedin signal communication with a second input of the motion estimator 480.The output of the motion estimator 480 is connected in signalcommunication with a first input of a motion compensator 490. A secondoutput of the reference picture store 470 is connected in signalcommunication with a second input of the motion compensator 490. Theoutput of the motion compensator 490 is connected in signalcommunication with an inverting input of the summing junction 410.

Turning to FIG. 5, a video encoder with implicit reference pictureweighting is indicated generally by the reference numeral 500. An inputto the encoder 500 is connected in signal communication with anon-inverting input of a summing junction 510. The output of the summingjunction 510 is connected in signal communication with a blocktransformer 520. The transformer 520 is connected in signalcommunication with a quantizer 530. The output of the quantizer 530 isconnected in signal communication with a VLC 540, where the output ofthe VLC 440 is an externally available output of the encoder 500.

The output of the quantizer 530 is further connected in signalcommunication with an inverse quantizer 550. The inverse quantizer 550is connected in signal communication with an inverse block transformer560, which, in turn, is connected in signal communication with areference picture store 570. A first output of the reference picturestore 570 is connected in signal communication with a first input of areference picture weighting factor assignor 572. The input to theencoder 500 is further connected in signal communication with a secondinput of the reference picture weighting factor assignor 572. The outputof the reference picture weighting factor assignor 572, which isindicative of a weighting factor, is connected in signal communicationwith a first input of a motion estimator 580. A second output of thereference picture store 570 is connected in signal communication with asecond input of the motion estimator 580.

The input to the encoder 500 is further connected in signalcommunication with a third input of the motion estimator 580. The outputof the motion estimator 580, which is indicative of motion vectors, isconnected in signal communication with a first input of a motioncompensator 590. A third output of the reference picture store 570 isconnected in signal communication with a second input of the motioncompensator 590. The output of the motion compensator 590, which isindicative of a motion compensated reference picture, is connected insignal communication with a first input of a multiplier 592. The outputof the reference picture weighting factor assignor 572, which isindicative of a weighting factor, is connected in signal communicationwith a second input of the multiplier 592. The output of the multiplier592 is connected in signal communication with an inverting input of thesumming junction 510.

Turning now to FIG. 6, an exemplary process for encoding video signaldata for an image block with implicit reference picture weighting isindicated generally by the reference numeral 600. The process includes astart block 610 that passes control to an input block 612. The inputblock 612 receives substantially uncompressed image block data, andpasses control to a function block 614. The function block 614 selectsfirst and second reference pictures for the received image block, fromeither or both directions relative to the positioning of the imageblock, and passes control to a function block 616. The function block616 determines the relative positioning between the image block and thefirst and second reference pictures, and passes control to a functionblock 618. The function block 618 calculates implicit weighting factorsfor each particular reference picture of the image block based on therelative positioning. The function block 618 passes control to afunction block 620. The function block 620 begins a program loop foreach of the two reference picture indices of the current image block,and passes control to a function block 622. The function block 622computes a motion vector for the image block and the particularreference picture, and passes control to a function block 624. Thefunction block 624 motion compensates the particular reference picturein correspondence with the motion vector, and passes control to afunction block 626. The function block 626, in turn, multiplies themotion compensated reference picture by its implicit weighting factor toform a weighted motion compensated reference picture, and passes controlto a function block 628. The function block 628 iterates the loop offunction block 620, and passes control to function block 630 after theloop has completed twice.

In computing a motion vector for the mage block and the particularreference picture, function block 622 may involve, for example, testingwithin a search region for every displacement within a pre-determinedrange of offsets relative to the image block, calculating the sum of theabsolute difference and/or the mean squared error of each pixel in theimage block with a motion estimated reference picture, and selecting theoffset with the lowest sum of the absolute difference and mean squarederror as the motion vector.

The function block 630 forms a combined weighted motion compensatedreference picture, and passes control to a function block 632. Thefunction block 632 subtracts the combined weighted motion compensatedreference picture from the substantially uncompressed image block, andpasses control to a function block 634. The function block 634, in turn,encodes a signal with the difference between the substantiallyuncompressed image block and the combined weighted motion compensatedreference picture along with the corresponding index of the particularreference pictures, and passes control to an end block 636. Thus, twopredictors from before, after, or around the current picture would beformed in a bi-predictive case.

In operation, an implicit weighting factor is applied to the referencepicture prediction of a video compression encoder and decoder that usesmultiple reference pictures. When a block is bi-predictively coded andthe new implicit mode is used, the distances of the current picture fromthe reference picture are used to determine the relative weightingfactors, based on an interpolation/extrapolation formula.

For preferred embodiments of the present invention, a new definition ofimplicit bi-prediction is defined. An interpolation or extrapolationformula based on the distance between the coded picture and itsreference pictures is used. The same formula is used for interpolationor extrapolation. The formula becomes an interpolation formula if thetwo reference pictures are one before and one after the current codedpicture in display order, and it becomes an extrapolation formula if thereference pictures are either both before or both after the currentcoded picture in display order.

The current picture is to be displayed at time T, the reference pictureP₀, is to be displayed at time T₀ and the reference picture P₁ is to bedisplayed at time T₁. In this implicit mode, for bi-predictively codedmacroblocks, the prediction is defined asPred=P ₀*(T ₁ −T)/(T ₁ −T ₀)+P ₁*(T−T ₀)/(T ₁ −T ₀)  (Eqn. 2)

The relative display time values, T, T₁ and T₀, are present in thepicture headers of relative pictures. In implicit mode, WP weightingfactor determination may be based on picture order count (“POC”) ratherthan display time. POC is present in, or derived from, the slice header.Thus, it will be understood by those of ordinary skill in the pertinentart that POC may be used in place of display time. Embodiments thatstore this relative position info from the reference pictures when theyare decoded may also be implemented. The display times T₁ and T₀ arestored while pictures P₁ and P₀ are decoded.

When pictures are decoded their POCs or display times or positioninginformation is stored. When the weighting factors are to be computed,this stored positioning data is accessed, using the reference pictureindices to indicate which stored position data to use. This informationis stored for a direct mode motion vector scaling. The calculation of(T₁−T)/(T₁−T₀) and (T−T₀)/(T₁−T₀) is also used for direct mode and theresult of the calculation may be saved and re-used to eliminate the needfor recalculation. These division calculations can be performed for eachcoded picture, once for each value of T, T₀ and T₁, and that result canbe scaled by a constant factor, X, to allow for more efficient shiftoperations rather than division operations for calculating the Predvalues for each pixel. For example, if X is 256, Z0 and Z1 may becalculated once per picture as follows:Z ₀=(256*(T ₁ −T))/(T ₁ −T ₀)  (Eqn. 3)Z ₁=(256*(T−T ₀))/(T ₁ −T ₀)  (Eqn. 4)

Then, Pred is calculated once per pixel as:Pred=(P ₀ *Z ₀ +P ₁ *Z ₁+128)>>8  (Eqn. 5)

Clipping of the Pred value to the desired range, typically 0 to 255, canbe done after this calculation. The values of Z₀ and Z₁ may also beclipped. For chroma coefficients which are centered about 128, thefollowing exemplary formula may be used:Pred=(P ₀−128)*(T ₁ −T)/(T ₁ −T ₀)+(P ₁−128)*(T−T ₀)/(T ₁ −T₀)+128  (Eqn. 6)

In a direct mode, the reference index of reference picture 0 and ofreference picture 1 are not explicitly transmitted but are derived. Inthis case, the weighting factor is calculated based on the derivedvalues of T₁ and T₀. The reference picture indices in the bitstream,when available, may be used to find T0 and T1.

With bi-predictively coded macroblocks in a linear fade, the proposedweighting will be ideal. In this case, a bitrate reduction may beachieved since no bits are needed to transmit the weighting factorsassociated with each reference picture.

For the case when P1 is two reference pictures preceding the currentpicture and P₀ is one reference picture preceding the current picture,the formula defaults to:Pred=2*P ₀ −P ₁  (Eqn. 7)

These and other features and advantages of the present invention may bereadily ascertained by one of ordinary skill in the pertinent art basedon the principles disclosed herein. It is to be understood that theprinciples of the present invention may be implemented in various formsof hardware, software, firmware, special purpose processors, orcombinations thereof.

Most preferably, the present invention is implemented as a combinationof hardware and software. Moreover, the software is preferablyimplemented as an application program tangibly embodied on a programstorage unit. The application program may be uploaded to, and executedby, a machine comprising any suitable architecture. Preferably, themachine is implemented on a computer platform having hardware such asone or more central processing units (“CPU”), a random access memory(“RAM”), and input/output (“I/O”) interfaces. The computer platform mayalso include an operating system and microinstruction code. The variousprocesses and functions described herein may be either part of themicroinstruction code or part of the application program, or anycombination thereof, which may be executed by a CPU. In addition,various other peripheral units may be connected to the computer platformsuch as an additional data storage unit and a printing unit.

It is to be further understood that, because some of the constituentsystem components and methods depicted in the accompanying drawings arepreferably implemented in software, the actual connections between thesystem components or the process function blocks may differ dependingupon the manner in which the present invention is programmed. Given theprinciples of the present invention disclosed herein, one, of ordinaryskill in the pertinent art will be able to contemplate these and similarimplementations or configurations of the present invention.

Although the illustrative embodiments have been described herein withreference to the accompanying drawings, it is to be understood that thepresent invention is not limited to those precise embodiments, and thatvarious changes and modifications may be effected therein by one ofordinary skill in the pertinent art without departing from the scope orspirit of the present invention. All such changes and modifications areintended to be included within the scope of the present invention as setforth in the appended claims.

1. A video encoder for encoding video signal data for an image block anda plurality of reference picture indices, the encoder comprising areference picture weighting factor assignor responsive to the relativepositioning between the image block and first and second referencepictures indicated by the plurality of reference picture indices, thereference picture weighting factor assignor for calculating respectiveimplicit weighting factors for the first and second reference picturesbased on respective distances of the image block to the first and secondreference pictures.
 2. A video encoder as defined in claim 1 wherein thereference picture weighting factor assignor comprises: an interpolationportion for interpolating between portions of two reference picturesdisposed one before and one after the image block in display order; andan extrapolation portion for extrapolating from portions of tworeference pictures disposed both before or both after the image block indisplay order.
 3. A video encoder as defined in claim 1, furthercomprising a reference picture store in signal communication with thereference picture weighting factor assignor for providing a referencepicture corresponding to each reference picture index.
 4. A videoencoder as defined in claim 1, further comprising a variable lengthcoder in signal communication with the reference picture weightingfactor assignor for encoding the first and second reference pictureindices.
 5. A video encoder as defined in claim 1, further comprising amotion compensation unit in signal communication with the referencepicture weighting factor assignor for providing motion compensatedreference pictures responsive to the reference picture weighting factorassignor.
 6. A video encoder as defined in claim 5, further comprising amultiplier in signal communication with the motion compensation unit andthe reference picture weighting factor assignor for applying a weightingfactor to a motion compensated reference picture.
 7. A video encoder asdefined in claim 6, further comprising prediction means for formingfirst and second predictors from two different reference pictures.
 8. Avideo encoder as defined in claim 7 wherein the two different referencepictures are both from the same direction relative to the image block.9. A method for encoding video signal data for an image block, themethod comprising: receiving a substantially uncompressed image block;calculating implicit weighting factors for the image block responsive tothe relative positioning between the image block and first and secondreference pictures indicated by first and second reference pictureindices based on respective distances of the image block to the firstand second reference pictures; computing motion vectors for the imageblock and each of the first and second reference pictures; motioncompensating each of the first and second reference pictures incorrespondence with the respective motion vectors; multiplying each ofthe motion compensated reference pictures by its calculated implicitweighting factor to form a weighted motion compensated referencepicture; combining each of the weighted motion compensated referencepictures into a combined weighted motion compensated reference picture;subtracting the combined weighted motion compensated reference picturefrom the substantially uncompressed image block; and encoding a signalindicative of the difference between the substantially uncompressedimage block and the combined weighted motion compensated referencepicture along with the corresponding indices of the first and secondreference pictures.
 10. A method as defined in claim 9 whereincalculating an implicit weighting factor comprises at least one of:interpolating between portions of two reference pictures disposed onebefore and one after the image block in display order; and extrapolatingfrom portions of two reference pictures disposed both before or bothafter the image block in display order.
 11. A method as defined in claim9 wherein motion compensating each of the retrieved reference picturescomprises determination of motion vectors for the retrieved referencepictures relative to the image block.
 12. A method as defined in claim9, further comprising: encoding a picture order count in a slice headerfield for the image block for use in calculating implicit weightingfactors for the image block and the plurality of reference pictures. 13.A method as defined in claim 9 wherein the relative positioning of theimage block and the plurality of reference pictures corresponds to therelative display times of the respective pictures.
 14. A method asdefined in claim 9 wherein computing motion vectors comprises: testingwithin a search region for every displacement within a pre-determinedrange of offsets relative to the image block; calculating at least oneof the sum of the absolute difference and the mean squared error of eachpixel in the image block with a motion estimated reference picture; andselecting the offset with the lowest sum of the absolute difference andmean squared error as the motion vector.